import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from "@angular/router";
import { FormsModule } from "@angular/forms";
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { AccordionModule, TabsModule, ModalModule, PaginationModule } from 'ngx-bootstrap';
import { FileUploadModule } from '../lib/ng2-file-upload';
import { QuillEditorModule } from '../lib/ngx-quill-editor';
import { ToasterModule } from 'angular2-toaster';
import { NgZorroAntdModule } from 'ng-zorro-antd';

import { GoodsManagementModule } from './home/goods-management/goods-management.module';
import { PageManagementModule } from './home/page-management/page-management.module';
import { AdvertisingManagementModule } from './home/advertising-management/advertising-management.module';
import { MaterialManagementModule } from './home/material-management/material-management.module';
import { AccountRechargeManagementModule } from './home/account-recharge-management/account-recharge-management.module';
import { VoucherManagementModule } from './home/voucher-management/voucher-management.module';
import { PersonalCenterModule } from './home/personal-center/personal-center.module';
import { CampaignManagementModule } from './home/campaign-management/campaign-management.module';
import { ChangePasswordComponent } from './home/personal-center/change-password/change-password.component';

import { rootRouterConfig } from './app.routes';

import { GoodsMarkingComponent } from './home/goods-management/goods-marklist/goods-marking/goods-marking.component';
import { HomepagePopupComponent } from './home/page-management/homepage-popup/homepage-popup.component';
import { ThreeAdvertisingManagementComponent } from './home/advertising-management/three-advertising-management/three-advertising-management.component';
import { ImageManagementComponent } from './home/material-management/image-management/image-management.component';
import { PrepaidVoucherManagementComponent } from './home/account-recharge-management/prepaid-voucher-management/prepaid-voucher-management.component';
import { VoucherBatchToUserComponent } from './home/voucher-management/voucher-batch-to-user/voucher-batch-to-user.component';
import { PaymentMethodManagementComponent } from './home/account-recharge-management/payment-method-management/payment-method-management.component';
import { RechargeNoteComponent } from './home/account-recharge-management/recharge-note/recharge-note.component';
import { GoodsMarkListComponent } from './home/goods-management/goods-marklist/goods-marklist.component';
import { ActivityGoodsManagementComponent } from './home/campaign-management/activity-goods-management/activity-goods-management.component';
import { ActivityGoodsManagementModalComponent } from './home/campaign-management/activity-goods-management/activity-goods-management-modal/activity-goods-management-modal.component';
import { ActivityGoodsManagementAddModalComponent } from './home/campaign-management/activity-goods-management/activity-goods-management-add-modal/activity-goods-management-add-modal.component';
import { ClickOrderActivityManagementComponent } from './home/campaign-management/click-order-activity-management/click-order-activity-management.component';
import { ClickOrderActivityAddComponent } from './home/campaign-management/click-order-activity-management/click-order-activity-add/click-order-activity-add.component';
import { ClickOrderActivityEditComponent } from './home/campaign-management/click-order-activity-management/click-order-activity-edit/click-order-activity-edit.component';
import { FloatingWindowComponent } from './home/page-management/floating-window/floating-window.component';
import { LeadDownloadActivityManagementComponent } from './home/campaign-management/lead-download-activity-management/lead-download-activity-management.component';
import { LeadDownloadActivityAddComponent } from './home/campaign-management/lead-download-activity-management/lead-download-activity-add/lead-download-activity-add.component';
import { LeadDownloadActivityEditComponent } from './home/campaign-management/lead-download-activity-management/lead-download-activity-edit/lead-download-activity-edit.component';
import { InvoiceManagementComponent } from './home/invoice-management/invoice-management.component';
import { InvoiceCategoryManagementComponent } from './home/invoice-management/invoice-category-management/invoice-category-management.component';
import { GoodsInvoiceCategoryManagementComponent } from './home/invoice-management/goods-invoice-category-management/goods-invoice-category-management.component';
import { InvoiceManagementModule } from './home/invoice-management/invoice-management.module'
import { ExchangeCardTemplateManagementComponent } from './home/exchange-card-management/exchange-card-template-management/exchange-card-template-management.component';
import { ExchangeCardManagementModule } from './home/exchange-card-management/exchange-card-management.module'

import { TabDirective } from '../lib/tab-directive';
import { masterService } from '../lib/master.service';
import { saveVarService } from '../lib/saveVar.service';
import { AppComponent } from './app.component';
import { LoginComponent } from './login/login.component';
import { HomeComponent } from './home/home.component';

export const importComponents = [
    TabDirective,
    LoginComponent,
    HomeComponent
];

export const importModules = [
    BrowserModule,
    HttpModule,
    RouterModule.forRoot(rootRouterConfig, { useHash: true }),
    FormsModule,
    BrowserAnimationsModule,
    FileUploadModule,
    QuillEditorModule,
    AccordionModule.forRoot(),
    TabsModule.forRoot(),
    ModalModule.forRoot(),
    PaginationModule.forRoot(),
    ToasterModule,
    GoodsManagementModule,
    PageManagementModule,
    AdvertisingManagementModule,
    MaterialManagementModule,
    AccountRechargeManagementModule,
    VoucherManagementModule,
    PersonalCenterModule,
    CampaignManagementModule,
    NgZorroAntdModule.forRoot(),
    InvoiceManagementModule,
    ExchangeCardManagementModule
];

export const importServices = [
    masterService, saveVarService
]